GitHub Actionsでtextlintしてみた
こんにちは、かたいなかです。
最近、ちょっとしたドキュメントのリポジトリに対して、textlintをかけたいと思うことがありました。しかし、textlintのためだけにCIツールを設定するとなると少し面倒だなとも感じました。
そんなとき、GitHub Actionsを使用するとリポジトリに設定ファイルを設置するだけで処理が実行できることを思い出しました。
そこで今回は、現在ベータのGitHub Actionsを使用してtextlintを実行する構成を試してみました。
GitHub Actionsは現在ベータです。
手順
GitHub ActionsのBetaにSign up
GitHub ActionsはまだBetaなのでそのままで使用することはできません。
以下のリンクよりベータにサインアップし、アカウントで有効化されるまで待ちます。
https://github.com/features/actions
対象のリポジトリ
以下のようなディレクトリ構成のリポジトリにtextlintによるテストを追加していきます。README.md
とdocs
ディレクトリ内がtextlintによる処理の対象です。
. ├── README.md └── docs └── hoge.md
設定ファイルの設置
package.json
package.json
にtextlintとそのルールを依存ライブラリとして指定します。
{ "scripts": { "test": "./node_modules/.bin/textlint docs README.md" }, "devDependencies": { "textlint": "^11.2.3", "textlint-rule-no-todo": "^2.0.1", "textlint-rule-preset-ja-technical-writing": "^3.1.0", "textlint-rule-preset-jtf-style": "^2.3.3" } } }
.textlintrc
.textlintrc
でtextlintのルールを有効化します。
{ "rules": { "no-todo": true, "preset-ja-technical-writing": true, "preset-jtf-style": true } }
github/main.workflow
最後に .github/main.workflow
でGitHub Actionsにtextlintを実行させるよう設定します。
workflow "Install and Test" { on = "push" resolves = ["Test"] } action "Install" { uses = "actions/npm@master" args = "install" } action "Test" { needs = "Install" uses = "actions/npm@master" args = "test" }
ここまででリポジトリの内容は以下のようになっています。
. ├── .github │ └── main.workflow ├── .textlintrc ├── README.md ├── docs │ └── hoge.md └── package.json
GitHubにプッシュ
ここまでの変更をコミットしてGitHubにプッシュすると処理が自動で開始されます。
正しく設定されていれば処理が成功します。
この状態でtextlintに怒られるPull Requestを作成します。
期待通り処理に失敗しました。
失敗のログの表示は以下の画像のようになります。必要に応じてreviewdog等も導入してPull Request上から見られるようにしても良いでしょう。
まとめ
GitHub Actionsを使用してtextlintを実行する方法を試してみました。
設定自体はGitHub Actionsが有効なアカウントであれば、CIツールを設定することなく、リポジトリに設定ファイルを追加するだけでお手軽に設定できるのは良いのではないかと感じました。